package git

//git基本理论(核心)


/*

	工作区域
		Git本地有三个工作区域:
				工作目录(Working Directory )、
				暂存区(Stage/Index)、
				资源库(Repository或Git Directory)。
				如果在加上远程的git仓库(Remote Directory)就可以分为四个工作区域。文件在这四个区域之间的转换关系如下:

			------	Remote Directory ---
			↑							↓
		git pull					git push
			↑							↓
			--------History	-------------
			 ↑					↓
		git commit				git reset
			 ↑					 ↓
			-----	stage(Index)----
		     ↑                     ↓
		git add files		 git checkout
			 ↑					   ↓
			 ----Working Directory ---



		. Workspace :工作区，就是你平时存放项目代码的地方
		.Index / Stage:暂存区，用于临时存放你的改动，事实上它只是一个文件，保存即将提交到文件列表信息，减少不必要的版本生成提交到本地长裤
		·Repository :仓库区（或本地仓库），就是安全存放数据的位置，这里面有你提交到所有版本的数据。其中HEAD指向最新放入仓库的版本
		.Remote :远程仓库，托管代码的服务器，可以简单的认为是你项目组中的一台电脑用于远程数据交换本地的三个区域确切的说应该是git仓库中HEAD指向的版本∶



------------工作流程------------
	1.在工作目录中添加\修改文件。
	2.将需要进行版本管理的问题件放入暂存区域；  git add .
	3.将暂存区域的文件提交到git仓库			git commit -m ""  /每提交一次，都会在本地仓库形成一个版本

		add/commit 不能提交空目录


	因此，git管理的文件有三种状态：
		已修改(modified)
		已暂存（staged）
		已提交（committed）


	4.如果需要推送到远程					git push




	创建工作目录与常用指令
	工作目录(WorkSpace)一般就是你希望Git帮助你管理的文件夹，可以是你项目的目录，也可以是一个空目录，建议不要有中文。



								   pull
		------------------------>----------------------------------
	     |														  |
		 |	---------->-------	 ------------->----------------   |
		 |	|	fetch/clone   |  |		     checkout 		  |   |
		Remote				Repository						workspace
	       | push           |    |                             |
		   -------<----------	 commit				 	       add
								 |								|
								 |--------<-----lndex  <---------



	日常使用只要记住下图6个命令︰
		提交到服务器
			git add .			从[工作目录]发送到[暂存区]
					git checkout		还没有提交出去，从[暂存区]放回本地的[工作目录]

			git commit			从[暂存区]提交到[本地仓库]
					git reset  			commit提交完后回滚回来

			git push			从[本地仓库]提交到[远程服务]
					git pull			从[远程服务]拉取到[本地]

		从服务器下拉
			git pull			从[远程服务]拉取到[本地]
			git fetch/clone



 */






